﻿using System;
using System.Collections;

namespace UploadClient.Interfaces.Plugins
{
    //make it serializable?
    public interface IPluginConfig
    {
        /// <summary>
        /// Name of the plugin.
        /// </summary>
        string PluginName { get; }

        /// <summary>
        /// Version of the plugin.
        /// </summary>
        string Version { get; }

        /// <summary>
        /// GUID for the plugin. 
        /// <remarks>Globally Unique Identifier!</remarks>
        /// </summary>
        Guid Guid { get; }

        /// <summary>
        /// Enable/disable the plugin function.
        /// </summary>
        bool PluginEnabled { get; set; }

        // ToDo: prevent mainwindow to change/add keys -> readonly keys?
        /// <summary>
        /// [Optional] Custom settings.
        /// </summary>
        Hashtable Settings { get; }

        /// <summary>
        /// Text that will be displayed in the global configuration next to the enable/disable button.
        /// </summary>
        string DisplayText { get; }

        /// <summary>
        /// Short function description for the global configuration.
        /// </summary>
        string Hint { get;  }
    }
}
